Matlab联合Vissim协同仿真时报错“创建服务器失败” 您所在的位置:网站首页 error using feval Matlab联合Vissim协同仿真时报错“创建服务器失败”

Matlab联合Vissim协同仿真时报错“创建服务器失败”

2024-07-15 00:05| 来源: 网络整理| 查看: 265

文章目录 前言一、问题概述二、问题相关代码三、运行结果及报错内容四、解决思路及方法总结

前言

COM 是一种实现软件之间进程间通信的技术,可以用能够处理 COM 对象的任何类型的语言进行编程。通过 Vissim COM,用户能够动态地操作大多数内部对象的属性。

使用 Matlab 进行联合仿真的主要优点之一是 Matlab 脚本语言比较简单,并且有很多内置函数可以自由调用。与其他编程语言相比,使用 Matlab 可以节省大量时间和精力。

一、问题概述

Matlab 联合 Vissim 协同仿真时,在 Matlab 中使用命令“actxserver”创建一个新的 COM 服务器,出现了“创建服务器失败”的问题。

二、问题相关代码

创建COM服务器代码如下:

%% 建立VISSIM的COM接口 vissim = actxserver('VISSIM.vissim.430'); 三、运行结果及报错内容 错误使用 feval 创建服务器失败: 没有注册类 出错 actxserver (line 89) h=feval(['COM.' convertedProgID], 'server', machinename, interface); 四、解决思路及方法

这样的错误意味着 Matlab 由于系统某些问题而无法连接到 Vissim,这是 Windows 产生的错误。 提供以下几种方法给大家尝试,也是我在解决问题过程中都试过的一些行之有效方法。

1.【杀毒软件】可能会导致出现此种问题,尝试关闭并检查是否可以解决该问题(我的电脑就是由于火绒杀毒软件导致无法运行代码,将火绒关闭后即可以运行)。

2.同时按住 windows+R 组合键打开“运行”,输入 “DCOMCNFG” 后打开组件服务,点击 DCOM 配置,查看 VISSIM_COMServer 是否安装好。

3.在 Vissim 软件的菜单栏尝试操作:帮助-点击注册COM服务器。我用的是 Vissim 4.3 版本,是没有找到“点击注册COM服务器”选项的,可能是版本的问题,也欢迎了解 Vissim 4.3 注册的同学与我一起交流。(咨询了一位学长的建议:Vissim 新版本的COM接口更加友好,也可以用开源软件SUMO替代 Vissim,它的 TraCI 接口可以实现和 COM 相同的功能)

总结

这个问题困扰了我差不多快一个月,走了不少弯路。这段时间一直在各平台上搜索提问,翻墙上外网找答案,还给一位同样做仿真的陌生学长发邮件询问,感谢这位学长为我提供的帮助。几经波折,终于解决这个问题。

于我而言,整个探寻问题解决方案的过程、运行时看到 Matlab 正忙的紧张以及能够跑通代码后的激动,这些都是我科研路上宝贵的经历,弥足珍贵,令我受益匪浅。

虽然得到答案后会觉得“啊,原来是这么简单的原因”,但是在自己探索的时候,由于网上资料比较少真的会很抓狂,幸好问题得到圆满的解决。写此文章分享给大家,希望能够给遇到同样问题的同学提供一些帮助。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有